home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Collection of Tools & Utilities
/
Collection of Tools and Utilities.iso
/
graphic
/
stk100.zip
/
SPRTEST.C
< prev
next >
Wrap
C/C++ Source or Header
|
1990-10-20
|
3KB
|
86 lines
/**********************************************************************
* sprtest.c
*
* A simple STK test program.
*
* Compile with the command line "tcc sprtest.c stks.lib graphics.lib"
* or use the integrated environment with the project file SPRTEST.PRJ.
*
**********************************************************************
This file is part of
STK -- The sprite toolkit -- version 1.0
Copyright (C) Jari Karjala 1990
The sprite toolkit (STK) is a FreeWare toolkit for creating high
resolution sprite graphics with PCompatible hardware. This toolkit
is provided as is without any warranty or such thing. See the file
COPYING for further information.
**********************************************************************/
#include <stdio.h> /*** puts() ***/
#include "stk.h" /*** The Sprite Toolkit prototypes ***/
#include "sprtest.smp" /*** The sprite map to use **/
int main(int argc, char **argv)
{
int i,j,k;
ANIM_SPRITE as1, as2;
/**** Detect a suitable graphics mode, start it and init spr module ****/
gr_detect(GR_TYPE_SPR, &i, &j);
if (i == -1) {
puts("Unsupported graphics mode, need EGA or Hercules!");
return 1;
}
gr_start(&i, &j);
spr_initialize(i);
/**** Create two animated sprites ****/
as1 = spr_anim_create(1, spr_create(sprtest_width, sprtest_height,
sprtest_shape, sprtest_mask,
8, 0));
as2 = spr_anim_create(1, spr_create(sprtest_width, sprtest_height,
sprtest_shape, sprtest_mask,
8, 0));
if (as1==NULL || as2==NULL) {
gr_puts("Cannot create sprites.\nPress enter to exit");
while (gr_inkey()!=13)
;
return 2;
}
/**** Set sprite 1 properties *****/
spr_anim_set_time(as1, 0, 6, 5000); /** Timeout after 5000 steps **/
spr_anim_set_location(as1, 20,15); /** Initial position **/
spr_anim_set_limits(as1, 0,0, 400, gr_max_y); /** Limits **/
spr_anim_set_vector(as1, 2,1); /** Direction vector **/
spr_anim_start(as1); /** Activate the sprite **/
/**** Set sprite 2 properties *****/
spr_anim_set_time(as2, 0, 6, 5000); /** Timeout after 5000 steps **/
spr_anim_set_location(as2, 20,300); /** Initial position **/
spr_anim_set_vector(as2, -2,2); /** Direction vector **/
spr_anim_start(as2); /** Activate the sprite **/
gr_dual_xy_printf(60,60,"***** HERE IS SOME BACKGROUND TEXTURE *****");
gr_dual_xy_printf(200,200,"***** HERE IS SOME BACKGROUND TEXTURE *****");
gr_dual_xy_printf(130,130,"Press Esc to exit");
k = 0;
do { /**** Loop until the user presses the Esc key ****/
gr_dual_xy_printf(0,0,"Pass %d ",k);
spr_anim_next_pass();
spr_regulate_speed();
i = gr_inkey();
k++;
} while (i!=27);
/**** No real need to use gr_end since it is bound with atexit() ****/
gr_end();
return 0;
}